Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

247
Views
matriz (matriz de matrices|matriz bidimensional) suma sin bucles. Hay una mejor manera?

Estaba pensando en una forma de hacer una suma de matriz sin tener que usar bucles y me doy cuenta de que usar Array.prototype.map() es una buena manera.

 var multArray = [[1,2,3,4,5],[6,7,8,9,10]]; var multArray2=[[1,2,3,4,5],[6,7,8,9,10]]; total = multArray.map((array, arrayIndex) => array.map((value, index) => value + multArray2[arrayIndex][index])); console.log(total);

¿Sabes si hay un camino mejor o más corto?

¡Gracias!.

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

"Mejor" es subjetivo, pero puedes hacer algo como esto:

 var multArray = [[1,2,3,4,5],[6,7,8,9,10]]; var multArray2=[[1,2,3,4,5],[6,7,8,9,10]]; console.log( [...Array(multArray.length).keys()].map( f => [...Array(multArray[f].length).keys()].map( s => multArray[f][s] + multArray2[f][s] ) ) )

Pero en mi opinión, el tuyo es más legible

about 4 years ago · Juan Pablo Isaza Report

0

Creo que un ciclo for simple es el más explícito en términos de mostrar claramente lo que está sucediendo.

 const multArray = [[1, 2, 3, 4, 5], [6, 7, 8, 9, 10],]; const multArray2 = [[1, 2, 3, 4, 5], [6, 7, 8, 9, 10],]; const total = []; for (let i = 0; i < multArray.length; i++) { total[i] = []; for (let j = 0; j < multArray[i].length; j++) { total[i][j] = multArray[i][j] + multArray2[i][j]; } } console.log(total);

Pero si realmente no quiere, puede definir algunas funciones de utilidad y encadenarlas.

 const multArray = [[1, 2, 3, 4, 5], [6, 7, 8, 9, 10],]; const multArray2 = [[1, 2, 3, 4, 5], [6, 7, 8, 9, 10],]; const zip = (a, b) => a.map((k, i) => [k, b[i]]); const sum = (arr) => arr.reduce((a, b) => a + b, 0); const total = zip(multArray, multArray2).map((c) => zip(...c).map(sum)); console.log(total);

Se puede obtener una ventaja real al redefinir la función zip() para aceptar cualquier cantidad de parámetros y, por lo tanto, permitirle totalizar cualquier cantidad de matrices simplemente pasándolas todas a la llamada zip inicial (y evitando escribir explícitamente bucles anidados para cada matriz adicional ).

 const multArray = [[1, 2, 3, 4, 5], [6, 7, 8, 9, 10],]; const multArray2 = [[1, 2, 3, 4, 5], [6, 7, 8, 9, 10],]; const multArray3 = [[1, 2, 3, 4, 5], [6, 7, 8, 9, 10],]; const zip = (...rows) => [...rows[0].keys()].map((k) => rows.map((row) => row[k])); const sum = (arr) => arr.reduce((a, b) => a + b, 0); const sum_mult_arrays = (...arrs) => zip(...arrs).map((c) => zip(...c).map(sum)); const total = sum_mult_arrays(multArray, multArray2, multArray3); console.log(total);

Veael equivalente de Javascript de la función zip de Python para una gran discusión sobre el comprimir.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!